package cn.iocoder.yudao.module.reading.controller.app.recordings.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 用户配音聚合响应 VO
 * 按绘本聚合显示配音信息
 *
 * @author 李晨
 */
@Schema(description = "用户配音聚合响应 VO")
@Data
public class UserRecordingAggregateRespVO {

    @Schema(description = "绘本ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
    private Long bookId;

    @Schema(description = "绘本标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "Fun at the Beach")
    private String bookTitle;

    @Schema(description = "封面URL", example = "https://example.com/cover.jpg")
    private String coverUrl;

    @Schema(description = "配音数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "5")
    private Integer recordingCount;

    @Schema(description = "总时长（秒）", requiredMode = Schema.RequiredMode.REQUIRED, example = "300")
    private Integer totalDuration;

    @Schema(description = "格式化总时长", example = "05:00")
    private String formattedTotalDuration;

    @Schema(description = "平均评分", example = "85")
    private Integer averageScore;

    @Schema(description = "最新配音时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime latestRecordTime;

    @Schema(description = "是否全部可分享", example = "true")
    private Boolean allShareable;

    @Schema(description = "绘本总页数", example = "10")
    private Integer totalPages;

    @Schema(description = "已配音页数", example = "5")
    private Integer recordedPages;

    @Schema(description = "配音完成度百分比", example = "50")
    private Integer completionPercentage;

}
